# -*- coding: utf-8 -*-
"""
产品模块数据库迁移文件
创建产品相关数据表
"""

import django.db.models.deletion
from django.conf import settings
from django.db import migrations, models


class Migration(migrations.Migration):

    initial = True

    dependencies = [
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
    ]

    operations = [
        migrations.CreateModel(
            name='Product',
            fields=[
                ('remark', models.CharField(blank=True, db_comment='备注', help_text='备注', max_length=256, null=True, verbose_name='备注')),
                ('creator', models.CharField(blank=True, db_comment='创建人', help_text='创建人', max_length=64, null=True, verbose_name='创建人')),
                ('modifier', models.CharField(blank=True, db_comment='修改人', help_text='修改人', max_length=64, null=True, verbose_name='修改人')),
                ('update_time', models.DateTimeField(auto_now=True, db_comment='修改时间', help_text='修改时间', null=True, verbose_name='修改时间')),
                ('create_time', models.DateTimeField(auto_now_add=True, db_comment='创建时间', help_text='创建时间', null=True, verbose_name='创建时间')),
                ('is_deleted', models.BooleanField(db_comment='是否软删除', default=False, verbose_name='是否软删除')),
                ('product_id', models.AutoField(help_text='产品的唯一标识', primary_key=True, serialize=False, verbose_name='产品ID')),
                ('product_type', models.CharField(blank=True, help_text='货品类型', max_length=64, null=True, verbose_name='货品类型')),
                ('sku', models.CharField(help_text='库存单元编码', max_length=50, unique=True, verbose_name='SKU')),
                ('name', models.CharField(help_text='产品的全称', max_length=255, verbose_name='货品名称')),
                ('spc', models.CharField(blank=True, help_text='产品的规格型号', max_length=255, null=True, verbose_name='货品规格')),
                ('description', models.TextField(blank=True, help_text='产品的详细描述', null=True, verbose_name='货品描述')),
                ('category_id', models.IntegerField(blank=True, help_text='货品分类id', null=True, verbose_name='货品分类id')),
                ('unit_pr', models.CharField(blank=True, help_text='采购使用的计量单位', max_length=20, null=True, verbose_name='采购计量单位')),
                ('unit_wh', models.CharField(blank=True, help_text='库存管理使用的计量单位', max_length=20, null=True, verbose_name='库存计量单位')),
                ('unit_use', models.CharField(blank=True, help_text='生产使用的计量单位', max_length=20, null=True, verbose_name='使用计量单位')),
                ('unit_rate', models.JSONField(blank=True, help_text='不同计量单位之间的转换率', null=True, verbose_name='计量单位转换率')),
                ('status', models.CharField(choices=[('active', '激活'), ('inactive', '非激活'), ('discontinued', '已停产')], default='active', help_text='产品的当前状态', max_length=20, verbose_name='货品状态')),
                ('sku_supplier', models.CharField(blank=True, help_text='供应商的库存单元编码', max_length=64, null=True, verbose_name='供应商SKU')),
                ('barcode', models.CharField(blank=True, help_text='产品的条形码', max_length=64, null=True, verbose_name='条形码')),
                ('inventory_method', models.CharField(blank=True, help_text='库存计价方法', max_length=64, null=True, verbose_name='库存方法')),
                ('costing_method', models.CharField(blank=True, help_text='产品成本计算方法', max_length=64, null=True, verbose_name='成本计算方法')),
                ('is_batch_tracked', models.BooleanField(default=False, help_text='是否需要批次跟踪', verbose_name='是否批次跟踪')),
                ('is_serial_tracked', models.BooleanField(default=False, help_text='是否需要序列号跟踪', verbose_name='是否序列号跟踪')),
                ('shelf_life_days', models.IntegerField(blank=True, help_text='产品保质期天数', null=True, verbose_name='保质期天数')),
                ('safety_stock', models.IntegerField(blank=True, help_text='安全库存数量', null=True, verbose_name='安全库存')),
                ('reorder_point', models.IntegerField(blank=True, help_text='再订货触发点数量', null=True, verbose_name='再订货点')),
                ('max_stock', models.IntegerField(blank=True, help_text='最大库存数量', null=True, verbose_name='最大库存')),
                ('default_warehouse_id', models.IntegerField(blank=True, help_text='默认仓库的ID', null=True, verbose_name='默认仓库ID')),
                ('default_location', models.CharField(blank=True, help_text='默认库位', max_length=64, null=True, verbose_name='默认库位')),
                ('preferred_supplier_id', models.IntegerField(blank=True, help_text='首选供应商的ID', null=True, verbose_name='首选供应商ID')),
                ('purchaser_id', models.IntegerField(blank=True, help_text='负责采购的人员ID', null=True, verbose_name='采购员ID')),
                ('lead_time', models.IntegerField(blank=True, help_text='采购提前期(天)', null=True, verbose_name='提前期')),
                ('moq', models.IntegerField(blank=True, help_text='最小起订数量', null=True, verbose_name='最小起订量')),
                ('last_purchase_price', models.DecimalField(blank=True, decimal_places=4, help_text='最近一次采购的价格', max_digits=14, null=True, verbose_name='最近采购价')),
                ('list_price', models.DecimalField(blank=True, decimal_places=4, help_text='产品的标准销售价格', max_digits=14, null=True, verbose_name='列表价')),
                ('standard_cost', models.DecimalField(blank=True, decimal_places=4, help_text='产品的标准成本', max_digits=14, null=True, verbose_name='标准成本')),
                ('current_cost', models.DecimalField(blank=True, decimal_places=4, help_text='产品的当前成本', max_digits=14, null=True, verbose_name='当前成本')),
                ('income_account_id', models.IntegerField(blank=True, help_text='收入会计科目的ID', null=True, verbose_name='收入科目ID')),
                ('cogs_account_id', models.IntegerField(blank=True, help_text='销售成本会计科目的ID', null=True, verbose_name='销售成本科目ID')),
                ('asset_account_id', models.IntegerField(blank=True, help_text='资产会计科目的ID', null=True, verbose_name='资产科目ID')),
                ('tax_code', models.CharField(blank=True, help_text='产品的税率代码', max_length=64, null=True, verbose_name='税码')),
                ('version', models.CharField(blank=True, help_text='产品版本号', max_length=64, null=True, verbose_name='版本号')),
            ],
            options={
                'verbose_name': '产品',
                'verbose_name_plural': '产品',
                'db_table': 'product',
                'ordering': ['sku'],
            },
        ),
    ]
